var IdCobro = -1;
var MontoCobro = 0;
var IdClienteCobro = -1;
var CuentasCobros = -1;
var IdRegistracionCobro = -1;
var IdReservaCobro = -1;
var divCobros = "principalCobros";
var auxPantalla = "";
var acuenta = "n";
var ValCotizacion = 0;
var IdMonedaSelected = 0;

function showCobros() {
    if (window.pantalla == "resumen_cliente") {
        //window.auxPantalla = "resumen_cliente";
        hideResumenCliente();
    } else if (window.pantalla == "reservas") {
        window.auxPantalla = "reservas";
        hideReservas(1);
    } else if (window.pantalla == "registraciones") {
        window.auxPantalla = "registraciones";
        hideRegistracion();
    } else if (window.pantalla == "almacen") {
        window.auxPantalla = "almacen";
        window.divCobros = "almacenCobros";
    }
    window.pantalla = "cobros";

    // Cargo los datos
    cargarDatos();
    showCotizacion();



    $("#" + window.divCobros).css("visibility", "visible");
    $("#blackViel").css("z-index", "1000");
    $("#blackViel").fadeTo("slow", 1.0);



}

function hideCobros() {
    $("#" + window.divCobros).css("visibility", "hidden");
    $("#blackViel").css("z-index", "-1");
    $("#blackViel").fadeTo("slow", 0);
    hideMenu(1);
    hideMenu(2);
    hideMenu(3);
}

function cargarDatos() {


    if (window.IdClienteCobro != -1) {
        getClientesById(window.IdClienteCobro, "cobros");
    } else {
        cargaClienteCobros("Sin Cliente");
    }

//    getMonedas();

//    lblCobrosClientes
    $("#txtCobrosImporte").val(window.MontoCobro);
    $("#txtCobrosTotal").text(window.MontoCobro);
    $("#txtDescuentoPorc").val("0");
    $("#txtDescuentoCant").val("0");


}


function cargaClienteCobros(datos) {
    $("#lblCobrosClientes").text(datos.split(" ")[1] + " " + datos.split(" ")[2]);

}

function calcularTotal(obj) {
    var monto = parseFloat($("#txtCobrosImporte").val());
    var porcDesc = parseFloat($("#txtDescuentoPorc").val());
    var montoDesc = parseFloat($("#txtDescuentoCant").val());
    // cantidad en pesos del descuento
    var desc = 0;
    var total = 0;
//    alert(obj);
//    Defino por donde está entrando
    if (obj == 'txtCobrosImporte' || obj.name == "txtCobrosImporte") {
//        Calculo lo que tengo que restar
//        alert(2);
        if (porcDesc > 0) {
            desc = monto * porcDesc / 100;
        }

        $("#txtCobrosTotal").text(monto - desc);

    } else if (obj.name == "txtDescuentoPorc") {
//        alert(3);
        if (porcDesc > 0) {
            desc = monto * porcDesc / 100;
        }
        $("#txtCobrosTotal").text(monto - desc);
        $("#txtDescuentoCant").val(desc);

    } else if (obj.name == "txtDescuentoCant") {
        $("#txtCobrosTotal").text(monto - montoDesc);
//        alert(4);
        desc = (montoDesc * 100) / monto;
//        alert(desc);
        $("#txtDescuentoPorc").val(desc);

    }
    calculaVuelto();
}


function saveCobro(tipo) {

    window.acuenta = tipo;

    // Verifico si la caja está abierta
    $.ajax({
        type: "post",
        url: "./src/caja.php",
        data: "type=0",
        success: function(data) {
            if (data == 'abierta') {

            } else if (data == 'cerrada') {
                alert('La caja se encuentra cerrada');
                return;
            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            alert("Status: " + textStatus);
            alert("Error: " + errorThrown);
        }
    });





//    saveMovimiento(idcuenta, iditem, idregistracion, idreserva, idcliente, cantidad, idusuario, importe, detalles)
    var idusuario = $("#userLogged").val();

// Verifico que el usuario de la caja sea el mismo que el usuario que está cobrando
//
//alert(window.IdUsuarioCaja);
//alert(idusuario);

    // Obtengo el usuario de la caja en la base y la comparo con el loggeado.
    var idusuariocajabase = -1;
    getDatosCajaAbierta();
    
//    alert(window.detalleCaja);
    
    idusuariocajabase = window.detalleCaja.split(" ")[1];
//    alert(idusuariocajabase);

    if (idusuariocajabase !== idusuario) {
        alert('Solo el usuario que ha abierto la caja puede cobrar.');
        return;
    }
    
//    return;


//    Busco último asiento
    getIdAsiento("cobros");

    if (window.auxPantalla == "almacen") {
        if (window.acuenta == "s" && window.IdClienteCobro == -1) {
            alert("Debe seleccionar un cliente para poder cobrar a cuenta.");
            return;
        }

        var lista = window.lstItems.split(" ");
        // Guardo las salidas de venta
        for (var i = 1; i < lista.length; i++) {
//            alert(lista[i]);
            saveMovimiento(lista[i].split("-")[1], window.IdAsiento, lista[i].split("-")[0], '-1', '-1', window.IdClienteCobro, '1', idusuario,
                    lista[i].split("-")[2], window.IdMonedaSelected, Math.round(lista[i].split("-")[2] / window.ValCotizacion), window.ValCotizacion,
                    "Venta de Almacen");
            actualizarStock(lista[i].split("-")[0], "-1");

        }

        if (window.acuenta == "s") {
            saveMovimiento('1.1.2.01', window.IdAsiento, '-1', '-1', '-1', window.IdClienteCobro, '1', idusuario, window.MontoCobro,
                    window.IdMonedaSelected, Math.round(window.MontoCobro / window.ValCotizacion), window.ValCotizacion,
                    "Venta de Almacen");
        } else {
            saveMovimiento('1.1.1.01', window.IdAsiento, '-1', '-1', '-1', window.IdClienteCobro, '1', idusuario, window.MontoCobro,
                    window.IdMonedaSelected, Math.round(window.MontoCobro / window.ValCotizacion), window.ValCotizacion,
                    "Venta de Almacen");
            saveMovimiento('4.1.4.01', window.IdAsiento, '-1', '-1', '-1', window.IdClienteCobro, '1', idusuario, $("#txtDescuentoCant").val(),
                    window.IdMonedaSelected, Math.round($("#txtDescuentoCant").val() / window.ValCotizacion), window.ValCotizacion,
                    "Descuento Venta de Almacen");
        }
        $.post('content.php', "almacen");
//         window.location.href = "content.php?almacen="
        // Guarda una entrada en clientes
        // Guarda entrada a ventas
//        saveMovimiento('101', '0', idRegistracion, '-1', cliente, '1', usuario, window.ImporteRegistracion, "Alquiler habitación");
    }
//    alert(window.auxPantalla);
    if (window.auxPantalla == "registraciones") {
        // Guardo el pago de la habitación
//        resto en clientes
        saveMovimiento('1.1.2.01', window.IdAsiento, '0',
                window.IdRegistracionCobro, '-1',
                window.IdClienteCobro, '1', idusuario,
                "-" + (parseFloat($("#txtCobrosTotal").text()) + parseFloat($("#txtDescuentoCant").val())),
                window.IdMonedaSelected,
                "-" + Math.round((parseFloat($("#txtCobrosTotal").text()) + parseFloat($("#txtDescuentoCant").val())) / window.ValCotizacion), window.ValCotizacion,
                "Alquiler Habitación");
//                guardo en caja
        saveMovimiento('1.1.1.01', window.IdAsiento, '0', window.IdRegistracionCobro, '-1', window.IdClienteCobro, '1', idusuario,
                $("#txtCobrosTotal").text(),
                window.IdMonedaSelected, Math.round($("#txtCobrosTotal").text() / window.ValCotizacion), window.ValCotizacion,
                "Alquiler Habitación");
//        Guardo los descuentos
        saveMovimiento('4.1.4.01', window.IdAsiento, '0', window.IdRegistracionCobro, '-1', window.IdClienteCobro, '1', idusuario,
                $("#txtDescuentoCant").val(),
                window.IdMonedaSelected, Math.round($("#txtDescuentoCant").val() / window.ValCotizacion), window.ValCotizacion,
                "Descuento Alquiler Habitación");
        hideCobros();
        checkSaldo('principal');
    }
    if (window.auxPantalla == "reservas") {
//        Resto en clientes
        saveMovimiento('1.1.2.01', window.IdAsiento, '0', '-1', window.IdReservaCobro, window.IdClienteCobro, '1', idusuario,
                "-" + $("#txtCobrosTotal").text(),
                window.IdMonedaSelected, "-" + Math.round($("#txtCobrosTotal").text() / window.ValCotizacion), window.ValCotizacion,
                "Alquiler Habitación");
//                Guardo la caja
        saveMovimiento('1.1.1.01', window.IdAsiento, '0', '-1', window.IdReservaCobro, window.IdClienteCobro, '1', idusuario,
                $("#txtCobrosTotal").text(),
                window.IdMonedaSelected, Math.round($("#txtCobrosTotal").text() / window.ValCotizacion), window.ValCotizacion,
                "Alquiler Habitación");
//                Guardo los descuentos
        saveMovimiento('4.1.4.01', window.IdAsiento, '0', '-1', window.IdReservaCobro, window.IdClienteCobro, '1', idusuario,
                $("#txtDescuentoCant").val(),
                window.IdMonedaSelected, Math.round($("#txtDescuentoCant").val() / window.ValCotizacion), window.ValCotizacion,
                "Descuento Alquiler Habitación");
        hideCobros();
        checkSaldo('principal');
    }
    if (window.auxPantalla == "resumen_cliente") {

    }

}

// Muestro cotizacion de la moneda y actualizo el total
function showCotizacion() {
    var valor = $("#cboCobrosMonedas").val();
    var cotizacion = parseFloat($("#cobrosCotizacion").val(valor.split("-")[1]));
    window.ValCotizacion = parseFloat(valor.split("-")[1]);
    window.IdMonedaSelected = valor.split("-")[0];

    var resultadoCot = window.MontoCobro / parseFloat(valor.split("-")[1]);
    $("#txtCobrosImporte").val(Math.round(resultadoCot));
    calcularTotal('txtCobrosImporte');
}


// Actualizo cotizacion y total
function updateCotizacion(obj) {
    var valor = $("#cboCobrosMonedas").val();
    var cotizacion = parseFloat($("#cobrosCotizacion").val());
    window.ValCotizacion = cotizacion;
    window.IdMonedaSelected = valor.split("-")[0];

    var resultadoCot = window.MontoCobro / cotizacion;
    $("#txtCobrosImporte").val(Math.round(resultadoCot));
    calcularTotal('txtCobrosImporte');
}


// Calculo el vuelto que tengo que dar
// Lo calculo en base a la moneda seleccionada
function calculaVuelto() {

    if ($("#txtCobrosPagaCon").val().length !== 0) {
        var pagaCon = parseFloat($("#txtCobrosPagaCon").val());

        var vuelto = 0;
        vuelto = (pagaCon * window.ValCotizacion) - (parseFloat($("#txtCobrosTotal").text()) * window.ValCotizacion);
        $("#txtVuelto").text(Math.round(vuelto));

    }
}